package fr.labri.macchiato.client;


import com.google.gwt.core.client.EntryPoint;
//import com.google.gwt.core.client.GWT;
import com.google.gwt.storage.client.Storage;
//import com.google.gwt.user.client.rpc.AsyncCallback;
import com.smartgwt.client.util.SC;

import fr.labri.macchiato.core.service.Services;
//import fr.labri.macchiato.feature.localDatabase.RpcQueryLauncher;
//import fr.labri.macchiato.feature.localDatabase.RpcQueryLauncherAsync;
import fr.labri.macchiato.ui.ApplicationPanel;
import fr.labri.macchiato.ui.preferences.PreferencesPrompt;

/**
 * Entry point classes define <code>onModuleLoad()</code>.
 */
public class Macchiato implements EntryPoint {
	/**
	 * This is the entry point method.
	 */
	public void onModuleLoad() {
		
		ConfigReader.init();
		
		if (!Storage.isSupported())
			SC.say("Les fonctionnalités de stockage HTML5, essentielles à cette application, ne sont pas supportées par votre navigateur");
		else {
	//		loadModel();

			if (Services.getInstance().getPreferencesService().arePreferencesConfigured()) {
				new ApplicationPanel();
			} else {
				PreferencesPrompt prompt = new PreferencesPrompt();
				prompt.show();
			}
		}
	}


//	private void loadModel() {
//		RpcQueryLauncherAsync queryService = GWT
//				.create(RpcQueryLauncher.class);
//		queryService.loadModel(new AsyncCallback<Void>() {
//			public void onFailure(Throwable caught) {
//				System.out.println("Fail to load model");
//				caught.printStackTrace();
//			}
//
//			public void onSuccess(Void result) {
//			}
//		});
//	}

}
